﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Sisco.LogicaNegocio
{
    public class CasoProblemaBLL
    {
        public List<AccesoDatos.CASOS_PROBL> Listar()
        {
            AccesoDatos.CasoProblemaDAO casoproblemaDAO = new AccesoDatos.CasoProblemaDAO();

            return casoproblemaDAO.Listar();
        }

        public List<AccesoDatos.CASOS_PROBL> ListarCasoSoftware()
        {
            List<AccesoDatos.CASOS_PROBL> lista = this.Listar();

            return lista.Where(x => x.tipo.Value == 1).ToList();
        }

        public List<AccesoDatos.CASOS_PROBL> ListarCasoHardware()
        {
            List<AccesoDatos.CASOS_PROBL> lista = this.Listar();

            return lista.Where(x => x.tipo.Value == 0).ToList();
        }

        public int Registrar(AccesoDatos.CASOS_PROBL nuevoCasoProblema)
        {
            AccesoDatos.CasoProblemaDAO casoProblemaDAO = new AccesoDatos.CasoProblemaDAO();
            return casoProblemaDAO.Registrar(nuevoCasoProblema);
        }

        public void Actualizar(AccesoDatos.CASOS_PROBL selectedCasoProblema, AccesoDatos.CASOS_PROBL updCasoProblema)
        {
            AccesoDatos.CasoProblemaDAO casoProblemaDAO = new AccesoDatos.CasoProblemaDAO();
            casoProblemaDAO.Actualizar(selectedCasoProblema, updCasoProblema);
        }

        public void Eliminar(AccesoDatos.CASOS_PROBL selectedCasoProblema)
        {
            AccesoDatos.CasoProblemaDAO casoProblemaDAO = new AccesoDatos.CasoProblemaDAO();
            casoProblemaDAO.Eliminar(selectedCasoProblema);
        }

        public AccesoDatos.CASOS_PROBL GetCasoProblema(int idCaso)
        {
            List<AccesoDatos.CASOS_PROBL> lista = this.Listar();

            return lista.SingleOrDefault(x => x.ID.Equals(idCaso) && x.eliminado.Equals(0));
        }
    }
}
